import time
import pytest

# ** 作者：上海-悠悠 QQ交流群：588402570**

@pytest.fixture(scope="function")
def start(request):
    print('\n-----开始执行function----')


# 调用装饰器的函数不需要加括号
def test_a(start):
    print("-------用例a执行-------")




class Test_aaa():

    def test_01(self, start):
        print('-----------用例01--------------')
# 类方法直接调前置操作
    def test_02(self, start):
        print('-----------用例02------------')

if __name__ == "__main__":
    pytest.main(["-s", "autouse.py"])


@pytest.fixture(scope="function")
def start(request):
    print("\n-----------开始执行function-----")


# 这个是需要运行用例使用的装饰器，使用装饰器，名称是  start
@pytest.mark.usefixtures("start")
def test_a():
    print("----------用例a执行------------")

@pytest.mark.usefixtures("start")
class Test_aaa():

    def test_01(self):
        print("1111111111111111111111111")

# 类方法会分别单独调用类调用的装饰器
    def test_02(self):
        print("2222222222222222222222222")


if __name__ == '__main__':
    pytest.main(["-s", "autouse.py"])


# 这个是class 运行时调用到的装饰器
@pytest.fixture(scope="module", autouse=True)
def start(request):
    print('\n-----开始执行moule----')
    print('module      : %s' % request.module.__name__)
    print('----------启动浏览器---------')

    # 单个class运行后执行下边的语句
    yield
    print("------------结束测试 end!-----------")



class Test_aaa():
    # 这个是类中方法每次执行时自动调用的装饰器
    @pytest.fixture(scope="function", autouse=True)
    def open_home(self, request):
        print("function：%s \n--------回到首页--------" % request.function.__name__)


    def test_01(self):
        print('-----------用例01--------------')

    def test_02(self):
        print('-----------用例02------------')

if __name__ == "__main__":
    pytest.main(["-s", "autouse.py"])